From: Dirkjan Ochtman Date: Mon, 2 Oct 2017 15:57:24 +0000 (+0200) Subject: Extract function to record if a feature was seen before X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~5^2~16^2~5 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=63281c7acb04598be351aa141804af5c79ea89b0;p=cargo.git Extract function to record if a feature was seen before --- diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index 699ea5c66..8b512b90e 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -891,6 +891,15 @@ impl<'r> Requirements<'r> { .1.push(feat.to_string()); } + fn seen(&mut self, feat: &'r str) -> bool { + if self.visited.insert(feat) { + self.used.insert(feat); + false + } else { + true + } + } + fn add_feature(&mut self, feat: &'r str) -> CargoResult<()> { if feat.is_empty() { return Ok(()) } @@ -907,13 +916,9 @@ impl<'r> Requirements<'r> { } None => { let feat = feat_or_package; - - //if this feature has already been added, then just return Ok - if !self.visited.insert(feat) { + if self.seen(feat) { return Ok(()); } - - self.used.insert(feat); match self.summary.features().get(feat) { Some(recursive) => { // This is a feature, add it recursively.